<?php

namespace app\admin\controller;

use app\common\controller\Backend;
use Think\Db;

// 数据统计的控制器
class Analysis extends Backend{
    public function __construct()
    {
        parent::__construct();

        $this->PostModel=model('Post.Post');
        $this->CateModel=model('Post.Cate');
        $this->UserModel=model('User.User');
    }

    // 统计悬赏问答帖子
    public function post(){
        // 查询所有分类
        $rows = $this->CateModel->order('weigh','asc')->field('id,name')->select();

        // 抽取出二维数组中指定字段的内容变成一个新数组
        $catelist=array_column($rows,'name');

        // 已采纳和未采纳
        $AcceptList=[];
        $NotAcceptList=[];

        foreach($rows as $item){
            // 查询出每个分类中已采纳和未采纳的总数
            // 已采纳的
            $where1=[
                'cateid'=>$item['id'],
                'accept'=>['exp',Db::raw('is not null')],
            ];
            $AcceptList[]=$this->PostModel->where($where1)->count();

            // 未采纳
            $where2=[
                'cateid'=>$item['id'],
                'accept'=>['exp',Db::raw('is null')]
            ];
            $NotAcceptList[]=$this->PostModel->where($where2)->count();
        }

        // 返回给后台
        $this->assign([
            // 转换为json
            'catelist'=>json_encode($catelist),
            'AcceptList'=>json_encode($AcceptList),
            'NotAcceptList'=>json_encode($NotAcceptList),
        ]);

        return $this->fetch();
    }

    // 统计用户的增加量
    public function user(){   
        $x=date('m');
        $y=date('Y');
        $xData=[];
        for($i=0;$i<12;$i++){
            // $xData[]=date($y.'-'.$x.'-01');//每个月的第一天
            if($x<10){
                $xData[]=date($y.'-0'.$x);
            }else{
                $xData[]=date($y.'-'.$x);
            }
            
            $x--;
            if($x<1){
                $x=12;
                $y--;
            }
        }
        
        $ySenDate=Monthcount('createtime',"*",'pre_user');

        $yMale=Monthcount('createtime',"if(sex = '1',1,null)",'pre_user');

        $yFamale=Monthcount('createtime',"if(sex = '2',1,null)",'pre_user');

        $ySecrecy=Monthcount('createtime',"if(sex = '0',1,null)",'pre_user');

        // 查询所有的用户
        $user=$this->UserModel->field('id,sex')->select();
        
        $userlist=array_column($user,'sex');

        // 数据逆转排序
        array_multisort($xData);
        // var_dump($xData);
        // var_dump($ySenDate);
        // var_dump($yFamale);
        // var_dump($yMale);
        // var_dump($ySecrecy);
        // exit;

        $this->assign([
            'userlist'=>json_encode($userlist),
            'xData'=>json_encode($xData),//年月
            'ySenDate'=>json_encode($ySenDate),//每月用户量
            'yMale'=>json_encode($yMale),//每月男性用户量
            'yFamale'=>json_encode($yFamale),//每月女性用户量
            'ySecrecy'=>json_encode($ySecrecy),//每月保密用户量
        ]);


        return $this->fetch();
    }
}